<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Monkey PHP Framework</title>
<link type="text/css" href="statics/css/base.css" rel="stylesheet" />
<script type="text/javascript" src="statics/js/jquery.min.js"></script>
<!--prettify-->
<link type="text/css" href="statics/css/prettify.css" rel="stylesheet" />
<script type="text/javascript" src="statics/js/prettify.js"></script>
<script type="text/javascript" src="statics/js/html5.js"></script>
<script type="text/javascript" src="statics/js/monkey.js"></script>
</head>

<body>
<!--page_wrap:start-->
<div class="page_wrap">

<p>
<h2>2.10 连接池管理器\Monkey\Database\LinkManager</h2>
<br />
<b>公开方法：</b><br />
<table class="table table_bordered table_striped">
    <thead>
        <tr>
            <th>方法名</th>
            <th>参数</th>
            <th>说明</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th>::_instance</th>
            <td>无</td>
            <td>获取连接管理器的单例。返回当前对象</td>
        </tr>
        <tr>
            <th>save</th>
            <td>string|mixed $project 项目目录，配置会保存在该目录下的config子目录中。
            </td>
            <td>保存整个连接池参数。返回当前对象</td>
        </tr>
        <tr>
            <th>putLink</th>
            <td>string|int $key 连接名；<br />
                array $config 连接参数（一维数组）
            </td>
            <td>更新连接池。返回当前对象</td>
        </tr>
        <tr>
            <th>deleteLink</th>
            <td>string|int $key 连接名；</td>
            <td>删除一个连接。返回当前对象</td>
        </tr>
        <tr>
            <th>clearLink</th>
            <td>无</td>
            <td>清除整个连接池。返回当前对象</td>
        </tr>
        <tr>
            <th>getLink</th>
            <td>string|int $key 连接名，不能为空；</td>
            <td>获取连接参数。返回array。如果不存在指定的连接，将抛出异常。</td>
        </tr>
        <tr>
            <th>getLinkOfFirst</th>
            <td>无</td>
            <td>获取连接池中的第一条连接。返回二维array，失败将抛出异常。</td>
        </tr>
        <tr>
            <th>getAllLinks</th>
            <td>无</td>
            <td>获取连接池中的所有连接参数。返回二维array。</td>
        </tr>
        <tr>
            <th>existKey</th>
            <td>string|int $key 连接名；</td>
            <td>判断连接是否存在。返回boolean。</td>
        </tr>
        <tr>
            <th>testLink</th>
            <td>string|int|array $arg<br />
            1：$arg为字符串或数字，测试连接池中对应键名连接；<br />
            2：$arg为数组，直接当成连接参数。
            </td>
            <td>测试一条连接。返回array通用通知包，参考公共函数notice，及数据驱动接口的connect方法</td>
        </tr>
        <tr>
            <th>&getDriver</th>
            <td>string|int $key 连接键名；</td>
            <td>获取$key指定连接的驱动对象。返回\Monkey\Database\Driver\_Interface型对象</td>
        </tr>
    </tbody>
</table>


<b>附录：</b><br />
<b>连接池的配置位置：\config\database.ini.php。</b><br />
<b>连接池的配置方式：</b><br />
<pre class="prettyprint linenums">
&lt?php
/******** 数据库连接池设置，至少一个连接 ********/
return array(
    //每个连接的键名可以为数字（省略或不省略都可以），比如 下面这个表示 links[0]
    array(
        'type'          =>'Mysqli', //PDO、Mysqli、Mysql
        'protocol'      =>'mysql', //数据库协议
        'host'          =>'localhost', //主机名
        'port'          =>'3306', //服务端口号
        'dbname'        =>'test', //数据库名
        'charset'       =>'utf8',//字符集设置
        'username'      =>'root', //数据库用户名
        'password'      =>'123', //数据库用户密码
        'prefix'        =>'test_',//表前缀
    ),
    //也可以为每个连接起一个关联字符名字，比如 下面这个表示 links['slave']
    'slave'=>array(
        'type'          =>'PDO', //PDO
        'protocol'      =>'mssql', //数据库协议
        'host'          =>'localhost', //主机名
        'port'          =>'3306', //服务端口号
        'dbname'        =>'test', //数据库名
        'charset'       =>'utf8',//字符集设置
        'username'      =>'root', //数据库用户名
        'password'      =>'123', //数据库用户密码
        'prefix'        =>'test_',//表前缀
    ),
    //sqlite连接比较特殊，仅支持PDO（能连接sqlite2和sqlite3），没有了主机名等，却增加了file键名
    'mysqlite'=>array(
        'type'          =>'PDO', //PDO
        'protocol'      =>'sqlite', //数据库协议
        'file'          =>SYSTEM.'/config/sqlite.db', //数据文件（绝对路径），也可以是“:memory:”（内存表）
        'charset'       =>'utf8',//字符集设置，Sqlite只支持utf8，设不设置都UTF8
        'username'      =>'root', //数据库用户名
        'password'      =>'123', //数据库用户密码
        'prefix'        =>'test_',//表前缀
    ),
);
?&gt;
</pre>


</p>
</div>
<!--page_wrap:end-->
</body>
</html>